package _10使用method对象运行方法;

import com.asin.domain.Person;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class DemoRunMethod {
    public static void main(String[] args) throws Exception{
        //获取person字节码对象
        Class<Person> aClass = Person.class;
        //通过person字节码对象获取全参构造方法
        Constructor<Person> constructor = aClass.getConstructor(String.class, int.class);
        //通过全参构造方法获取对象
        Person person = constructor.newInstance("张三", 20);
        System.out.println(person);
        //通过字节码对象获取work方法(私有方法需要getDeclaredMethod）
        Method work = aClass.getDeclaredMethod("work",int.class);
        work.setAccessible(true);//暴力反射
        //运行方法
        work.invoke(person, 3);

    }
}
